package com.cdtye.itps.cms.mapper.lineSite;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cdtye.itps.cms.dao.lineSite.entity.JcLineSite;
import com.cdtye.itps.cms.dao.lineSite.vo.JcLineSiteVo;
import io.swagger.annotations.Api;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Repository
@Api("段辖线路与区间站场关系mapper")
public interface JcLineSiteMapper extends BaseMapper<JcLineSite> {

    /**
     * 根据区站字典Id、获取对应线路区站表，所属线路名称信息（多个线路用逗号分割）
     * @param vo
     * @return
     */
    String getSecLineNamesBySiteId(@Param("vo") JcLineSiteVo vo);

    /**
     * 根据区站字典Id、获取对应线路区站表，所属线路idList
     * @param vo
     * @return
     */
    List<String> findSecLineIdListBySiteId(@Param("vo") JcLineSiteVo vo);

    /**
     * 获取所有的线路区站信息。注意类型是site
     * @return
     */
    List<Map<String, Object>> getSites();

    /**
     * 获取隶属于某条线路下的区站信息
     * @param vo
     * @return
     */
    List<Map<String, Object>> getSiteByLines(@Param("vo") JcLineSiteVo vo);

    /**
     * 区间战场列表
     * @param vo
     * @return
     */
    List<Map<String, Object>> getList(@Param("vo") JcLineSiteVo vo);

    /**
     * 区间战场分页查询
     * @param vo
     * @return
     */
    List<Map<String, Object>> pageList(IPage iPage, @Param("vo") JcLineSiteVo vo);

    List<Map> selectBySecLineId(@Param("lineId") String lineId,@Param("directionId") String directionId);

    Map selectMaxSiteByLineId(Map param);
    Map selectMinSiteByLineId(Map param);

    IPage<Map<String, Object>> pageList4Brain(IPage iPage, @Param("vo") JcLineSiteVo vo);
}
